#ifndef _SOPORTE_H_
#define _SOPORTE_H_

#include <cmath>
#include "Cilindro.h"

class Soporte : public Dibujable
	{
	private:
		/*
		*	cilindro: cilindro que se utiliza para el modelado del soporte.
		*/
		Cilindro *cilindro;
		
		// angulo entre la vertical y uno de los extremos del soporte.
		GLfloat anguloPie;

		// altura del soporte.
		GLuint alturaPie;

	public:
		/*
		*	Soporte(GLfloat anguloPie, GLuint alturaPie)
		*	Constructor de Soporte.
		*/
		Soporte(GLfloat anguloPie, GLuint alturaPie);
		
		/*
		*	~Soporte()
		*	Destructor de Soporte.
		*/
		~Soporte();

		/*
		*	GLuint getAlturaPie() const
		*	getter de alturaPie.
		*/
		GLuint getAlturaPie() const;

		/*
		*	getAnguloPie() const
		*	getter de anguloPie.
		*/
		GLfloat getAnguloPie() const;

		/*
		*	dibujar(int tiempoDurEscena)
		*	funcion que se encarga de dibujar un soporte utilizando 
		*	la clase Cilindro.
		*/
		void dibujar(int tiempoDurEscena);

	private:
		/*
		*	dibujarUnionesParantes(int tiempoDurEscena)
		*	funcion que se encarga de dibujar las soldaduras entre parantes.
		*/
		void dibujarUnionesParantes(int tiempoDurEscena);

		/*
		*	dibujarParantes(int tiempoDurEscena)
		*	funcion que se encarga de dibujar los parantes del soporte.
		*/
		void dibujarParantes(int tiempoDurEscena);

		/*
		*	dibujarUnionesBase(int tiempoDurEscena)
		*	funcion que se encarga de dibujar las soldaduras entre la base.
		*/
		void dibujarUnionesBase(int tiempoDurEscena);

		/*
		*	dibujarBarraSoporte(int tiempoDurEscena)
		*	funcion que se encarga de dibujar una barra donde va a ser soldado lo que
		*	es montado sobre el soporte.
		*/
		void dibujarBarraSoporte(int tiempoDurEscena);

	};

#endif